package servidorbancos.resources;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 *
 * @author luiz.perez
 */
public final class ListaAgencias {

    private List<Agencia> listaAgencias = new ArrayList<Agencia>();

    public ListaAgencias() {
        Ler();
    }

    public List<Agencia> getListaAgencias() {
        return listaAgencias;
    }

    public void setListaAgencias(List<Agencia> listaAgencias) {
        this.listaAgencias = listaAgencias;
    }

    public void Ler() {
        try {
            File arquivo = new File("csv/bancos_final.csv");
            Scanner leitor = new Scanner(arquivo, "ISO8859_1");
            String str;
            if (leitor.hasNextLine()) {
                leitor.nextLine();
            }
            while (leitor.hasNextLine()) {
                str = leitor.nextLine();
                String[] lido = str.split("\t");
                processa(lido);
            }
            leitor.close();
        } catch (IOException e) {
            System.out.println(e);
        }
        System.out.println(listaAgencias.get(0));
        System.out.println(listaAgencias.get(573));
        System.out.println(listaAgencias.get(875));
        System.out.println(listaAgencias.get(500));
    }

    private void processa(String[] lido) {
        int banco = 0, zona = 0;
        Agencia nova;
        if (lido[0].equals("Banco do Brasil")) {
            banco = 0;
        } else if (lido[0].equals("Banco Santander_Real")) {
            banco = 1;
        } else if (lido[0].equals("Banco Itau")) {
            banco = 2;
        } else if (lido[0].equals("Caixa Economica Federal")) {
            banco = 3;
        } else if (lido[0].equals("Bradesco")) {
            banco = 4;
        } else if (lido[0].equals("HSBC")) {
            banco = 5;
        } else if (lido[0].equals("Banco 24 Horas")) {
            banco = 6;
        } else if (lido[0].equals("Citibank")) {
            banco = 7;
        } else if (lido[0].equals("Safra")) {
            banco = 8;
        } else if (lido[0].equals("Sudameris")) {
            banco = 9;
        }

        if (lido[3].equals("São Paulo - Zona Norte")) {
            zona = 0;
        } else if (lido[3].equals("São Paulo - Zona Sul")) {
            zona = 1;
        } else if (lido[3].equals("São Paulo - Zona Leste")) {
            zona = 2;
        } else if (lido[3].equals("São Paulo - Centro")) {
            zona = 3;
        }

        nova = new Agencia(banco, Double.parseDouble(lido[2]), Double.valueOf(lido[1]), zona);
        listaAgencias.add(nova);
    }
}
